\hypertarget{module-sink2source-source_8c}{
\section{module-\/sink2source-\/source.c File Reference}
\label{module-sink2source-source_8c}\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}}
}
{\ttfamily \#include $<$stdio.h$>$}\par
{\ttfamily \#include $<$pulse/xmalloc.h$>$}\par
{\ttfamily \#include $<$pulse/i18n.h$>$}\par
{\ttfamily \#include $<$pulsecore/macro.h$>$}\par
{\ttfamily \#include $<$pulsecore/namereg.h$>$}\par
{\ttfamily \#include $<$pulsecore/sink.h$>$}\par
{\ttfamily \#include $<$pulsecore/module.h$>$}\par
{\ttfamily \#include $<$pulsecore/core-\/util.h$>$}\par
{\ttfamily \#include $<$pulsecore/modargs.h$>$}\par
{\ttfamily \#include $<$pulsecore/log.h$>$}\par
{\ttfamily \#include $<$pulsecore/rtpoll.h$>$}\par
{\ttfamily \#include $<$pulsecore/sample-\/util.h$>$}\par
{\ttfamily \#include $<$pulsecore/ltdl-\/helper.h$>$}\par
{\ttfamily \#include \char`\"{}module-\/sink2source-\/source-\/symdef.h\char`\"{}}\par
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structuserdata}{userdata}
\end{DoxyCompactItemize}
\subsection*{Defines}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{module-sink2source-source_8c_af987bd6f3f52d1759fa94794f4d56fb9}{MEMBLOCKQ\_\-MAXLENGTH}~(16$\ast$1024$\ast$1024)
\item 
\#define \hyperlink{module-sink2source-source_8c_af21627e005a4544350be876707a2f3bd}{BLOCK\_\-USEC}~1000
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{module-sink2source-source_8c_a34feba19174409859fedfe700a89f1b3}{PA\_\-MODULE\_\-AUTHOR} (\char`\"{}Pierre-\/Louis Bossart\char`\"{})
\item 
\hyperlink{module-sink2source-source_8c_a1a7d1a0c15041ad3e97c696cb6050168}{PA\_\-MODULE\_\-DESCRIPTION} (\char`\"{}Virtual source\char`\"{})
\item 
\hyperlink{module-sink2source-source_8c_a50a4b2c264115ffcf8b1665853a05763}{PA\_\-MODULE\_\-VERSION} (PACKAGE\_\-VERSION)
\item 
\hyperlink{module-sink2source-source_8c_a506dd872767e8cdd7dea67a5b20a3e8b}{PA\_\-MODULE\_\-LOAD\_\-ONCE} (FALSE)
\item 
\hyperlink{module-sink2source-source_8c_aed98b3eab9f4be5695e904a7a9f75fec}{PA\_\-MODULE\_\-USAGE} (\_\-(\char`\"{}source\_\-name=$<$name for the source$>$ \char`\"{}\char`\"{}source\_\-properties=$<$properties for the source$>$ \char`\"{}\char`\"{}master=$<$name of source to filter$>$ \char`\"{}\char`\"{}uplink\_\-sink=$<$name$>$ (optional)\char`\"{}\char`\"{}format=$<$sample format$>$ \char`\"{}\char`\"{}rate=$<$sample rate$>$ \char`\"{}\char`\"{}channels=$<$number of channels$>$ \char`\"{}\char`\"{}channel\_\-map=$<$channel map$>$ \char`\"{}\char`\"{}use\_\-volume\_\-sharing=$<$yes or no$>$ \char`\"{}\char`\"{}force\_\-flat\_\-volume=$<$yes or no$>$ \char`\"{}))
\item 
static int \hyperlink{module-sink2source-source_8c_a103487dc62102eda94fecd6bd2841d9e}{sink\_\-process\_\-msg\_\-cb} (pa\_\-msgobject $\ast$o, int code, void $\ast$data, int64\_\-t offset, pa\_\-memchunk $\ast$chunk)
\item 
static int \hyperlink{module-sink2source-source_8c_a1c8a3f9c0627b97a1f2b4f0d7ac77940}{sink\_\-set\_\-state\_\-cb} (pa\_\-sink $\ast$s, pa\_\-sink\_\-state\_\-t state)
\item 
static void \hyperlink{module-sink2source-source_8c_ac81e505bec8f573cd0aa4287c59d6804}{sink\_\-update\_\-requested\_\-latency\_\-cb} (pa\_\-sink $\ast$s)
\item 
static void \hyperlink{module-sink2source-source_8c_a1878c211d9dd6d3626b3c980ee131c1f}{sink\_\-request\_\-rewind\_\-cb} (pa\_\-sink $\ast$s)
\item 
static int \hyperlink{module-sink2source-source_8c_a61984a4ad32b75b327a800705221fe80}{source\_\-process\_\-msg\_\-cb} (pa\_\-msgobject $\ast$o, int code, void $\ast$data, int64\_\-t offset, pa\_\-memchunk $\ast$chunk)
\item 
static int \hyperlink{module-sink2source-source_8c_ada1a0742f5dc518085ae4af365e4c241}{source\_\-set\_\-state\_\-cb} (pa\_\-source $\ast$s, pa\_\-source\_\-state\_\-t state)
\item 
static void \hyperlink{module-sink2source-source_8c_aa37d3e4cd47dcf6ed1b24d3d163f6f9d}{source\_\-update\_\-requested\_\-latency\_\-cb} (pa\_\-source $\ast$s)
\item 
static void \hyperlink{module-sink2source-source_8c_aea871ce9c60218db72f8220704bd2e08}{source\_\-set\_\-volume\_\-cb} (pa\_\-source $\ast$s)
\item 
static void \hyperlink{module-sink2source-source_8c_a7aa926ea7a62837229dedbc3b9f5ca31}{source\_\-set\_\-mute\_\-cb} (pa\_\-source $\ast$s)
\item 
static void \hyperlink{module-sink2source-source_8c_aac4d01a7f863eb270ff7ebeddd8bdd8f}{source\_\-output\_\-push\_\-cb} (pa\_\-source\_\-output $\ast$o, const pa\_\-memchunk $\ast$chunk)
\item 
static void \hyperlink{module-sink2source-source_8c_a631276195a43e6bb8fc912da5bec66c8}{source\_\-output\_\-process\_\-rewind\_\-cb} (pa\_\-source\_\-output $\ast$o, size\_\-t nbytes)
\item 
static int \hyperlink{module-sink2source-source_8c_a904e172edab896ba6b337dccb40a871f}{source\_\-output\_\-process\_\-msg\_\-cb} (pa\_\-msgobject $\ast$obj, int code, void $\ast$data, int64\_\-t offset, pa\_\-memchunk $\ast$chunk)
\item 
static void \hyperlink{module-sink2source-source_8c_add377391c0f03d2dd295063b49adecb3}{source\_\-output\_\-attach\_\-cb} (pa\_\-source\_\-output $\ast$o)
\item 
static void \hyperlink{module-sink2source-source_8c_aab58428eb1cf4a8f9316a044a878faea}{source\_\-output\_\-detach\_\-cb} (pa\_\-source\_\-output $\ast$o)
\item 
static void \hyperlink{module-sink2source-source_8c_aa2e4e66ff6e9d876fd22e34ced40f9ae}{source\_\-output\_\-state\_\-change\_\-cb} (pa\_\-source\_\-output $\ast$o, pa\_\-source\_\-output\_\-state\_\-t state)
\item 
static void \hyperlink{module-sink2source-source_8c_ab1c1e57b7a6567751e8c3f58805da2f3}{source\_\-output\_\-kill\_\-cb} (pa\_\-source\_\-output $\ast$o)
\item 
static pa\_\-bool\_\-t \hyperlink{module-sink2source-source_8c_a409cac57804f87a1e7e456064134e436}{source\_\-output\_\-may\_\-move\_\-to\_\-cb} (pa\_\-source\_\-output $\ast$o, pa\_\-source $\ast$dest)
\item 
static void \hyperlink{module-sink2source-source_8c_ab76ab518da961f56447502514cd22b8d}{source\_\-output\_\-moving\_\-cb} (pa\_\-source\_\-output $\ast$o, pa\_\-source $\ast$dest)
\item 
int \hyperlink{module-sink2source-source_8c_a96cc887d1d5d632b8ff75f012a82fa38}{pa\_\-\_\-init} (pa\_\-module $\ast$m)
\item 
int \hyperlink{module-sink2source-source_8c_a4e1ab8d22b34da50d8df42809ffa17b6}{pa\_\-\_\-get\_\-n\_\-used} (pa\_\-module $\ast$m)
\item 
void \hyperlink{module-sink2source-source_8c_a60b8e8e14b924194997c63e43241890c}{pa\_\-\_\-done} (pa\_\-module $\ast$m)
\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
static const char $\ast$const \hyperlink{module-sink2source-source_8c_a775f35c5ae2e095cac9b838ce383f16e}{valid\_\-modargs} \mbox{[}$\,$\mbox{]}
\end{DoxyCompactItemize}


\subsection{Define Documentation}
\hypertarget{module-sink2source-source_8c_af21627e005a4544350be876707a2f3bd}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!BLOCK\_\-USEC@{BLOCK\_\-USEC}}
\index{BLOCK\_\-USEC@{BLOCK\_\-USEC}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{BLOCK\_\-USEC}]{\setlength{\rightskip}{0pt plus 5cm}\#define BLOCK\_\-USEC~1000}}
\label{module-sink2source-source_8c_af21627e005a4544350be876707a2f3bd}
\hypertarget{module-sink2source-source_8c_af987bd6f3f52d1759fa94794f4d56fb9}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!MEMBLOCKQ\_\-MAXLENGTH@{MEMBLOCKQ\_\-MAXLENGTH}}
\index{MEMBLOCKQ\_\-MAXLENGTH@{MEMBLOCKQ\_\-MAXLENGTH}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{MEMBLOCKQ\_\-MAXLENGTH}]{\setlength{\rightskip}{0pt plus 5cm}\#define MEMBLOCKQ\_\-MAXLENGTH~(16$\ast$1024$\ast$1024)}}
\label{module-sink2source-source_8c_af987bd6f3f52d1759fa94794f4d56fb9}


\subsection{Function Documentation}
\hypertarget{module-sink2source-source_8c_a60b8e8e14b924194997c63e43241890c}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!pa\_\-\_\-done@{pa\_\-\_\-done}}
\index{pa\_\-\_\-done@{pa\_\-\_\-done}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{pa\_\-\_\-done}]{\setlength{\rightskip}{0pt plus 5cm}void pa\_\-\_\-done (
\begin{DoxyParamCaption}
\item[{pa\_\-module $\ast$}]{ m}
\end{DoxyParamCaption}
)}}
\label{module-sink2source-source_8c_a60b8e8e14b924194997c63e43241890c}
\hypertarget{module-sink2source-source_8c_a4e1ab8d22b34da50d8df42809ffa17b6}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!pa\_\-\_\-get\_\-n\_\-used@{pa\_\-\_\-get\_\-n\_\-used}}
\index{pa\_\-\_\-get\_\-n\_\-used@{pa\_\-\_\-get\_\-n\_\-used}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{pa\_\-\_\-get\_\-n\_\-used}]{\setlength{\rightskip}{0pt plus 5cm}int pa\_\-\_\-get\_\-n\_\-used (
\begin{DoxyParamCaption}
\item[{pa\_\-module $\ast$}]{ m}
\end{DoxyParamCaption}
)}}
\label{module-sink2source-source_8c_a4e1ab8d22b34da50d8df42809ffa17b6}
\hypertarget{module-sink2source-source_8c_a96cc887d1d5d632b8ff75f012a82fa38}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!pa\_\-\_\-init@{pa\_\-\_\-init}}
\index{pa\_\-\_\-init@{pa\_\-\_\-init}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{pa\_\-\_\-init}]{\setlength{\rightskip}{0pt plus 5cm}int pa\_\-\_\-init (
\begin{DoxyParamCaption}
\item[{pa\_\-module $\ast$}]{ m}
\end{DoxyParamCaption}
)}}
\label{module-sink2source-source_8c_a96cc887d1d5d632b8ff75f012a82fa38}
\hypertarget{module-sink2source-source_8c_a34feba19174409859fedfe700a89f1b3}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!PA\_\-MODULE\_\-AUTHOR@{PA\_\-MODULE\_\-AUTHOR}}
\index{PA\_\-MODULE\_\-AUTHOR@{PA\_\-MODULE\_\-AUTHOR}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{PA\_\-MODULE\_\-AUTHOR}]{\setlength{\rightskip}{0pt plus 5cm}PA\_\-MODULE\_\-AUTHOR (
\begin{DoxyParamCaption}
\item[{\char`\"{}Pierre-\/Louis Bossart\char`\"{}}]{}
\end{DoxyParamCaption}
)}}
\label{module-sink2source-source_8c_a34feba19174409859fedfe700a89f1b3}
\hypertarget{module-sink2source-source_8c_a1a7d1a0c15041ad3e97c696cb6050168}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!PA\_\-MODULE\_\-DESCRIPTION@{PA\_\-MODULE\_\-DESCRIPTION}}
\index{PA\_\-MODULE\_\-DESCRIPTION@{PA\_\-MODULE\_\-DESCRIPTION}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{PA\_\-MODULE\_\-DESCRIPTION}]{\setlength{\rightskip}{0pt plus 5cm}PA\_\-MODULE\_\-DESCRIPTION (
\begin{DoxyParamCaption}
\item[{\char`\"{}Virtual source\char`\"{}}]{}
\end{DoxyParamCaption}
)}}
\label{module-sink2source-source_8c_a1a7d1a0c15041ad3e97c696cb6050168}
\hypertarget{module-sink2source-source_8c_a506dd872767e8cdd7dea67a5b20a3e8b}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!PA\_\-MODULE\_\-LOAD\_\-ONCE@{PA\_\-MODULE\_\-LOAD\_\-ONCE}}
\index{PA\_\-MODULE\_\-LOAD\_\-ONCE@{PA\_\-MODULE\_\-LOAD\_\-ONCE}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{PA\_\-MODULE\_\-LOAD\_\-ONCE}]{\setlength{\rightskip}{0pt plus 5cm}PA\_\-MODULE\_\-LOAD\_\-ONCE (
\begin{DoxyParamCaption}
\item[{FALSE}]{}
\end{DoxyParamCaption}
)}}
\label{module-sink2source-source_8c_a506dd872767e8cdd7dea67a5b20a3e8b}
\hypertarget{module-sink2source-source_8c_aed98b3eab9f4be5695e904a7a9f75fec}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!PA\_\-MODULE\_\-USAGE@{PA\_\-MODULE\_\-USAGE}}
\index{PA\_\-MODULE\_\-USAGE@{PA\_\-MODULE\_\-USAGE}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{PA\_\-MODULE\_\-USAGE}]{\setlength{\rightskip}{0pt plus 5cm}PA\_\-MODULE\_\-USAGE (
\begin{DoxyParamCaption}
\item[{\_\-(\char`\"{}source\_\-name=$<$name for the source$>$ \char`\"{}\char`\"{}source\_\-properties=$<$properties for the source$>$ \char`\"{}\char`\"{}master=$<$name of source to filter$>$ \char`\"{}\char`\"{}uplink\_\-sink=$<$name$>$ (optional)\char`\"{}\char`\"{}format=$<$sample format$>$ \char`\"{}\char`\"{}rate=$<$sample rate$>$ \char`\"{}\char`\"{}channels=$<$number of channels$>$ \char`\"{}\char`\"{}channel\_\-map=$<$channel map$>$ \char`\"{}\char`\"{}use\_\-volume\_\-sharing=$<$yes or no$>$ \char`\"{}\char`\"{}force\_\-flat\_\-volume=$<$yes or no$>$ \char`\"{})}]{}
\end{DoxyParamCaption}
)}}
\label{module-sink2source-source_8c_aed98b3eab9f4be5695e904a7a9f75fec}
\hypertarget{module-sink2source-source_8c_a50a4b2c264115ffcf8b1665853a05763}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!PA\_\-MODULE\_\-VERSION@{PA\_\-MODULE\_\-VERSION}}
\index{PA\_\-MODULE\_\-VERSION@{PA\_\-MODULE\_\-VERSION}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{PA\_\-MODULE\_\-VERSION}]{\setlength{\rightskip}{0pt plus 5cm}PA\_\-MODULE\_\-VERSION (
\begin{DoxyParamCaption}
\item[{PACKAGE\_\-VERSION}]{}
\end{DoxyParamCaption}
)}}
\label{module-sink2source-source_8c_a50a4b2c264115ffcf8b1665853a05763}
\hypertarget{module-sink2source-source_8c_a103487dc62102eda94fecd6bd2841d9e}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!sink\_\-process\_\-msg\_\-cb@{sink\_\-process\_\-msg\_\-cb}}
\index{sink\_\-process\_\-msg\_\-cb@{sink\_\-process\_\-msg\_\-cb}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{sink\_\-process\_\-msg\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}static int sink\_\-process\_\-msg\_\-cb (
\begin{DoxyParamCaption}
\item[{pa\_\-msgobject $\ast$}]{ o, }
\item[{int}]{ code, }
\item[{void $\ast$}]{ data, }
\item[{int64\_\-t}]{ offset, }
\item[{pa\_\-memchunk $\ast$}]{ chunk}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{module-sink2source-source_8c_a103487dc62102eda94fecd6bd2841d9e}
\hypertarget{module-sink2source-source_8c_a1878c211d9dd6d3626b3c980ee131c1f}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!sink\_\-request\_\-rewind\_\-cb@{sink\_\-request\_\-rewind\_\-cb}}
\index{sink\_\-request\_\-rewind\_\-cb@{sink\_\-request\_\-rewind\_\-cb}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{sink\_\-request\_\-rewind\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}static void sink\_\-request\_\-rewind\_\-cb (
\begin{DoxyParamCaption}
\item[{pa\_\-sink $\ast$}]{ s}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{module-sink2source-source_8c_a1878c211d9dd6d3626b3c980ee131c1f}
\hypertarget{module-sink2source-source_8c_a1c8a3f9c0627b97a1f2b4f0d7ac77940}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!sink\_\-set\_\-state\_\-cb@{sink\_\-set\_\-state\_\-cb}}
\index{sink\_\-set\_\-state\_\-cb@{sink\_\-set\_\-state\_\-cb}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{sink\_\-set\_\-state\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}static int sink\_\-set\_\-state\_\-cb (
\begin{DoxyParamCaption}
\item[{pa\_\-sink $\ast$}]{ s, }
\item[{pa\_\-sink\_\-state\_\-t}]{ state}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{module-sink2source-source_8c_a1c8a3f9c0627b97a1f2b4f0d7ac77940}
\hypertarget{module-sink2source-source_8c_ac81e505bec8f573cd0aa4287c59d6804}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!sink\_\-update\_\-requested\_\-latency\_\-cb@{sink\_\-update\_\-requested\_\-latency\_\-cb}}
\index{sink\_\-update\_\-requested\_\-latency\_\-cb@{sink\_\-update\_\-requested\_\-latency\_\-cb}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{sink\_\-update\_\-requested\_\-latency\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}static void sink\_\-update\_\-requested\_\-latency\_\-cb (
\begin{DoxyParamCaption}
\item[{pa\_\-sink $\ast$}]{ s}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{module-sink2source-source_8c_ac81e505bec8f573cd0aa4287c59d6804}
\hypertarget{module-sink2source-source_8c_add377391c0f03d2dd295063b49adecb3}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!source\_\-output\_\-attach\_\-cb@{source\_\-output\_\-attach\_\-cb}}
\index{source\_\-output\_\-attach\_\-cb@{source\_\-output\_\-attach\_\-cb}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{source\_\-output\_\-attach\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}static void source\_\-output\_\-attach\_\-cb (
\begin{DoxyParamCaption}
\item[{pa\_\-source\_\-output $\ast$}]{ o}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{module-sink2source-source_8c_add377391c0f03d2dd295063b49adecb3}
\hypertarget{module-sink2source-source_8c_aab58428eb1cf4a8f9316a044a878faea}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!source\_\-output\_\-detach\_\-cb@{source\_\-output\_\-detach\_\-cb}}
\index{source\_\-output\_\-detach\_\-cb@{source\_\-output\_\-detach\_\-cb}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{source\_\-output\_\-detach\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}static void source\_\-output\_\-detach\_\-cb (
\begin{DoxyParamCaption}
\item[{pa\_\-source\_\-output $\ast$}]{ o}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{module-sink2source-source_8c_aab58428eb1cf4a8f9316a044a878faea}
\hypertarget{module-sink2source-source_8c_ab1c1e57b7a6567751e8c3f58805da2f3}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!source\_\-output\_\-kill\_\-cb@{source\_\-output\_\-kill\_\-cb}}
\index{source\_\-output\_\-kill\_\-cb@{source\_\-output\_\-kill\_\-cb}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{source\_\-output\_\-kill\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}static void source\_\-output\_\-kill\_\-cb (
\begin{DoxyParamCaption}
\item[{pa\_\-source\_\-output $\ast$}]{ o}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{module-sink2source-source_8c_ab1c1e57b7a6567751e8c3f58805da2f3}
\hypertarget{module-sink2source-source_8c_a409cac57804f87a1e7e456064134e436}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!source\_\-output\_\-may\_\-move\_\-to\_\-cb@{source\_\-output\_\-may\_\-move\_\-to\_\-cb}}
\index{source\_\-output\_\-may\_\-move\_\-to\_\-cb@{source\_\-output\_\-may\_\-move\_\-to\_\-cb}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{source\_\-output\_\-may\_\-move\_\-to\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}static pa\_\-bool\_\-t source\_\-output\_\-may\_\-move\_\-to\_\-cb (
\begin{DoxyParamCaption}
\item[{pa\_\-source\_\-output $\ast$}]{ o, }
\item[{pa\_\-source $\ast$}]{ dest}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{module-sink2source-source_8c_a409cac57804f87a1e7e456064134e436}
\hypertarget{module-sink2source-source_8c_ab76ab518da961f56447502514cd22b8d}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!source\_\-output\_\-moving\_\-cb@{source\_\-output\_\-moving\_\-cb}}
\index{source\_\-output\_\-moving\_\-cb@{source\_\-output\_\-moving\_\-cb}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{source\_\-output\_\-moving\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}static void source\_\-output\_\-moving\_\-cb (
\begin{DoxyParamCaption}
\item[{pa\_\-source\_\-output $\ast$}]{ o, }
\item[{pa\_\-source $\ast$}]{ dest}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{module-sink2source-source_8c_ab76ab518da961f56447502514cd22b8d}
\hypertarget{module-sink2source-source_8c_a904e172edab896ba6b337dccb40a871f}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!source\_\-output\_\-process\_\-msg\_\-cb@{source\_\-output\_\-process\_\-msg\_\-cb}}
\index{source\_\-output\_\-process\_\-msg\_\-cb@{source\_\-output\_\-process\_\-msg\_\-cb}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{source\_\-output\_\-process\_\-msg\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}static int source\_\-output\_\-process\_\-msg\_\-cb (
\begin{DoxyParamCaption}
\item[{pa\_\-msgobject $\ast$}]{ obj, }
\item[{int}]{ code, }
\item[{void $\ast$}]{ data, }
\item[{int64\_\-t}]{ offset, }
\item[{pa\_\-memchunk $\ast$}]{ chunk}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{module-sink2source-source_8c_a904e172edab896ba6b337dccb40a871f}
\hypertarget{module-sink2source-source_8c_a631276195a43e6bb8fc912da5bec66c8}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!source\_\-output\_\-process\_\-rewind\_\-cb@{source\_\-output\_\-process\_\-rewind\_\-cb}}
\index{source\_\-output\_\-process\_\-rewind\_\-cb@{source\_\-output\_\-process\_\-rewind\_\-cb}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{source\_\-output\_\-process\_\-rewind\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}static void source\_\-output\_\-process\_\-rewind\_\-cb (
\begin{DoxyParamCaption}
\item[{pa\_\-source\_\-output $\ast$}]{ o, }
\item[{size\_\-t}]{ nbytes}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{module-sink2source-source_8c_a631276195a43e6bb8fc912da5bec66c8}
\hypertarget{module-sink2source-source_8c_aac4d01a7f863eb270ff7ebeddd8bdd8f}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!source\_\-output\_\-push\_\-cb@{source\_\-output\_\-push\_\-cb}}
\index{source\_\-output\_\-push\_\-cb@{source\_\-output\_\-push\_\-cb}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{source\_\-output\_\-push\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}static void source\_\-output\_\-push\_\-cb (
\begin{DoxyParamCaption}
\item[{pa\_\-source\_\-output $\ast$}]{ o, }
\item[{const pa\_\-memchunk $\ast$}]{ chunk}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{module-sink2source-source_8c_aac4d01a7f863eb270ff7ebeddd8bdd8f}
\hypertarget{module-sink2source-source_8c_aa2e4e66ff6e9d876fd22e34ced40f9ae}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!source\_\-output\_\-state\_\-change\_\-cb@{source\_\-output\_\-state\_\-change\_\-cb}}
\index{source\_\-output\_\-state\_\-change\_\-cb@{source\_\-output\_\-state\_\-change\_\-cb}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{source\_\-output\_\-state\_\-change\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}static void source\_\-output\_\-state\_\-change\_\-cb (
\begin{DoxyParamCaption}
\item[{pa\_\-source\_\-output $\ast$}]{ o, }
\item[{pa\_\-source\_\-output\_\-state\_\-t}]{ state}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{module-sink2source-source_8c_aa2e4e66ff6e9d876fd22e34ced40f9ae}
\hypertarget{module-sink2source-source_8c_a61984a4ad32b75b327a800705221fe80}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!source\_\-process\_\-msg\_\-cb@{source\_\-process\_\-msg\_\-cb}}
\index{source\_\-process\_\-msg\_\-cb@{source\_\-process\_\-msg\_\-cb}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{source\_\-process\_\-msg\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}static int source\_\-process\_\-msg\_\-cb (
\begin{DoxyParamCaption}
\item[{pa\_\-msgobject $\ast$}]{ o, }
\item[{int}]{ code, }
\item[{void $\ast$}]{ data, }
\item[{int64\_\-t}]{ offset, }
\item[{pa\_\-memchunk $\ast$}]{ chunk}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{module-sink2source-source_8c_a61984a4ad32b75b327a800705221fe80}
\hypertarget{module-sink2source-source_8c_a7aa926ea7a62837229dedbc3b9f5ca31}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!source\_\-set\_\-mute\_\-cb@{source\_\-set\_\-mute\_\-cb}}
\index{source\_\-set\_\-mute\_\-cb@{source\_\-set\_\-mute\_\-cb}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{source\_\-set\_\-mute\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}static void source\_\-set\_\-mute\_\-cb (
\begin{DoxyParamCaption}
\item[{pa\_\-source $\ast$}]{ s}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{module-sink2source-source_8c_a7aa926ea7a62837229dedbc3b9f5ca31}
\hypertarget{module-sink2source-source_8c_ada1a0742f5dc518085ae4af365e4c241}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!source\_\-set\_\-state\_\-cb@{source\_\-set\_\-state\_\-cb}}
\index{source\_\-set\_\-state\_\-cb@{source\_\-set\_\-state\_\-cb}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{source\_\-set\_\-state\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}static int source\_\-set\_\-state\_\-cb (
\begin{DoxyParamCaption}
\item[{pa\_\-source $\ast$}]{ s, }
\item[{pa\_\-source\_\-state\_\-t}]{ state}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{module-sink2source-source_8c_ada1a0742f5dc518085ae4af365e4c241}
\hypertarget{module-sink2source-source_8c_aea871ce9c60218db72f8220704bd2e08}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!source\_\-set\_\-volume\_\-cb@{source\_\-set\_\-volume\_\-cb}}
\index{source\_\-set\_\-volume\_\-cb@{source\_\-set\_\-volume\_\-cb}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{source\_\-set\_\-volume\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}static void source\_\-set\_\-volume\_\-cb (
\begin{DoxyParamCaption}
\item[{pa\_\-source $\ast$}]{ s}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{module-sink2source-source_8c_aea871ce9c60218db72f8220704bd2e08}
\hypertarget{module-sink2source-source_8c_aa37d3e4cd47dcf6ed1b24d3d163f6f9d}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!source\_\-update\_\-requested\_\-latency\_\-cb@{source\_\-update\_\-requested\_\-latency\_\-cb}}
\index{source\_\-update\_\-requested\_\-latency\_\-cb@{source\_\-update\_\-requested\_\-latency\_\-cb}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{source\_\-update\_\-requested\_\-latency\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}static void source\_\-update\_\-requested\_\-latency\_\-cb (
\begin{DoxyParamCaption}
\item[{pa\_\-source $\ast$}]{ s}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{module-sink2source-source_8c_aa37d3e4cd47dcf6ed1b24d3d163f6f9d}


\subsection{Variable Documentation}
\hypertarget{module-sink2source-source_8c_a775f35c5ae2e095cac9b838ce383f16e}{
\index{module-\/sink2source-\/source.c@{module-\/sink2source-\/source.c}!valid\_\-modargs@{valid\_\-modargs}}
\index{valid\_\-modargs@{valid\_\-modargs}!module-sink2source-source.c@{module-\/sink2source-\/source.c}}
\subsubsection[{valid\_\-modargs}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ const {\bf valid\_\-modargs}\mbox{[}$\,$\mbox{]}\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{module-sink2source-source_8c_a775f35c5ae2e095cac9b838ce383f16e}
{\bfseries Initial value:}
\begin{DoxyCode}
 {
    "source_name",
    "source_properties",
    "master",
    "uplink_sink",
    "format",
    "rate",
    "channels",
    "channel_map",
    "use_volume_sharing",
    "force_flat_volume",
    NULL
}
\end{DoxyCode}
